from db.mysql_handler import MySQLConfig, MySQLHandler

# 使用示例
if __name__ == "__main__":
    try:
        # 1. 初始化配置（指定配置文件路径和数据库节点）
        # 注意：根据你的实际config.ini路径修改（相对或绝对路径）
        config_path = "config/config.ini"  # 假设config.ini与当前文件同目录
        db_config = MySQLConfig(config_path=config_path, section="mysql_dev")

        # 2. 创建数据库处理器
        db_handler = MySQLHandler(db_config)

        # 3. 设置表名（会自动添加配置中的前缀）
        db_handler.set_table("users")
        print(f"当前操作的完整表名：{db_handler._full_table}")  # 输出带前缀的表名

        # 4. 执行数据库操作
        if db_handler.connect():
            # 插入数据
            insert_data = {"name": "测试用户", "age": 25, "email": "test@example.com"}
            row_count = db_handler.insert_one(insert_data)
            print(f"插入成功，影响行数：{row_count}")

            # 查询数据
            result = db_handler.select(
                columns="id, name, age",
                condition="age > %s",
                params=(20,),
                order_by="age DESC",
                limit=10
            )
            if result:
                print("\n查询结果：")
                for row in result:
                    print(row)

            # 更新数据
            update_data = {"age": 26}
            row_count = db_handler.update(
                data=update_data,
                condition="name = %s",
                params=("测试用户",)
            )
            print(f"\n更新成功，影响行数：{row_count}")

            # 删除数据（演示用，实际根据需求决定）
            # row_count = db_handler.delete(condition="name = %s", params=("测试用户",))
            # print(f"删除成功，影响行数：{row_count}")

        # # 5. 切换到生产环境数据库（演示）
        # print("\n切换到生产环境数据库...")
        # if db_handler.switch_database("mysql_prod"):
        #     db_handler.set_table("products")
        #     print(f"当前操作的完整表名：{db_handler._full_table}")
        #     # 可以执行生产环境的操作...

    except Exception as e:
        print(f"操作失败：{e}")
    finally:
        # 自动断开连接（__del__方法也会处理，但显式调用更保险）
        if 'db_handler' in locals():
            db_handler.disconnect()

    # try:
    #     config_path = "config/config.ini"  # 替换为你的config.ini路径
    #     db_config = MySQLConfig(config_path=config_path, section="mysql_dev")
    #     db_handler = MySQLHandler(db_config)

    #     # 验证表名前缀拼接
    #     db_handler.set_table("users")
    #     print(f"配置的表名前缀：{db_config.table_prefix}")  # 输出：tr_
    #     print(f"设置的原始表名：users")
    #     print(f"拼接后的完整表名：{db_handler._full_table}")  # 正确输出：tr_users

    #     # 连接数据库并执行操作（省略具体逻辑）
    #     # db_handler.connect()

    # except Exception as e:
    #     print(f"操作失败：{e}")
    # finally:
    #     if 'db_handler' in locals():
    #         db_handler.disconnect()